#! /bin/sh
# PCP QA Test No. 
# checking trace stub library
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

cat $seq.in | perl -e '
	@in=<>;
	$"="";
	print "@in[0..$#in-1]";
	print "pmtracecounter: counter '\'counter\'', value=101.100000\n";
	print "$in[$#in]";' >$seq.out

_cleanup()
{
    cd $here
    if [ -n "$savedtracehost" ]
    then
	PCP_TRACE_HOST=$savedtracehost; export PCP_TRACE_HOST
    fi
    exit $status
}

_filter()
{
    sed -e "s#$PCP_DEMOS_DIR/trace/app1#app1#"
}

status=1        # failure is the default!
trap "_cleanup" 0 1 2 3 15

if [ -n "$PCP_TRACE_HOST" ]
then
    savedtracehost=$PCP_TRACE_HOST; unset PCP_TRACE_HOST
fi

# real QA test starts here

echo "Checking trace stub library builds ..."
cd $PCP_DEMOS_DIR/trace
case $PCP_PLATFORM
in
    linux|solaris|freebsd|netbsd|openbsd)
	$sudo $PCP_MAKE_PROG -f Makefile.stub clobber >/dev/null 2>&1
	$sudo $PCP_MAKE_PROG -f Makefile.stub lib/libpcp_trace.so >/dev/null 2>&1
	export LD_PRELOAD=$PCP_DEMOS_DIR/trace/lib/libpcp_trace.so.2
	;;

    darwin)
	$sudo $PCP_MAKE_PROG -f Makefile.stub clobber >/dev/null 2>&1
	$sudo $PCP_MAKE_PROG -f Makefile.stub >/dev/null 2>&1
	DYLD_INSERT_LIBRARIES=$PCP_DEMOS_DIR/trace/lib/libpcp_trace.dylib
	DYLD_FORCE_FLAT_NAMESPACE=yes
	export DYLD_INSERT_LIBRARIES DYLD_FORCE_FLAT_NAMESPACE
	;;

    *)
	_notrun "Unknown platform ($PCP_PLATFORM)"
	;;
esac
echo make succeeded.

# this uses all of the externally visible libpcp_trace symbols
$PCP_DEMOS_DIR/trace/app1 2>&1 | _filter

# success, all done
status=0
exit
